package generador;

import static org.junit.Assert.assertTrue;

import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;

import manager.INodeData;
import manager.ITokenStream;
import model.AnalizadorSintactico;
import model.TokenStream;
import utils.Tree;

public class CopyOfCompilador2 {

//	public static void main(String args[]) {
//		
//		
//		AnalizadorSintactico asin;
//		ITokenStream tokenStream;
//		
//		StringBuilder code = new StringBuilder();
//		/*code.append("globales var w : entero; fin-globales;" +
//						" procedimiento main(); "  +
//						" comenzar " +
//						" w := 1 + 2 + 3;" +
//						" fin-proc;");*/
//		code.append(
//				"globales var w : natural; fin-globales;" +
//						" procedimiento main(); "  +
//						" comenzar " +
//						" w := 1 + 2 + 3;" +
//						" fin-proc;"
//					 );
//
//		
//		InputStream is = null;
//		try {
//			is = new ByteArrayInputStream(code.toString().getBytes( "UTF-8" ));
//		} catch (UnsupportedEncodingException e) {
//			new AssertionError( "No se soporta el encoding: ["+ code +"]" );
//		}
//		
//		tokenStream = new TokenStream(is);
//		asin = new AnalizadorSintactico(tokenStream,true);
//
//		assertTrue(asin.reconocer());
//
//		//Arbol generado
//		Tree<INodeData> arbolG = new Tree<INodeData>();
//		arbolG.setRoot(asin.getTreeNode());
//
//		asin.getErrorManager().debug("Arbol generado:");
//		asin.getErrorManager().debug(arbolG.toString());
//
//		TablaSimbolo tablaSimbolo = new TablaSimbolo();
//		
//		if (arbolG != null) {
//			GeneradorCodigo2 generadorCodigo = new GeneradorCodigo2(arbolG, tablaSimbolo);
//			String programa = generadorCodigo.generarCodigo();
//			System.out.println(programa);
//			System.out.println("ANALIZADOR SINTACTICO: Termino Correctamente.");
//		}
//		else
//		{
//			System.err.println("ANALIZADOR SINTACTICO: Ha finalizado con errores.");
//		}
//	}
}

